import Observe from "./observe.js"
import Compile from "./compile.js"


export default class Vue {
    constructor(option){
        // 1、存储数据到实例 vm
        this.$el = option.el
        this.$data = option.data

        // 2、注入 data 数据到实例 vm，方便后面使用
        this.proxyData(this.$data)    

        // 3、data 的所有子孙属性注入 getter、setter 用于实现双向绑定
        new Observe(this.$data)

        // 4、编译插值表达式、v-mode等指令
        new Compile(this.$el, this.$data)
    }

    proxyData(){

    }
}


// // 事件中心
// let eventHub = new Vue()

// // 组件A：发布者
// addTodo: function (){
//     eventHub.$emit('add-todo', { text: this.newTodoText })
//     this.newTodoText = ''
// }

// // 组件B：订阅者
// created: function (){
//     eventHub.$on('add-todo',this.addTodo)
// }